package com.ytclub.practice.server.dao;

import com.ytclub.practice.server.entity.po.PracticePO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 练习信息(practice_info)表数据库访问层
 *
 * @author makejava
 * @since 2023-12-13 23:46:27
 */
public interface PracticeDao {

    /**
     * 根据练题id获取详情
     *
     * @param id 练题id
     * @return 练习详情
     */
    PracticePO selectById(Long id);

    /**
     * 新增练习
     *
     * @param practicePO 练习信息
     * @return 影响行数
     */
    int insert(PracticePO practicePO);

    /**
     * 更新练习
     *
     * @param practicePO 练习信息
     * @return 影响行数
     */
    int update(PracticePO practicePO);

    /**
     * 根据id删除练习
     *
     * @param id 练习id
     * @return 影响行数
     */
    int deleteById(Long id);

    /**
     * 查询未完成的练习题数量
     *
     * @param loginId 登录id
     * @return 未完成的练习题数量
     */
    Integer getUnCompleteCount(String loginId);

    /**
     * 查询未完成的练习题列表
     *
     * @param loginId  登录id
     * @param limit    限制
     * @param pageSize 页大小
     * @return 未完成的练习题列表
     */
    List<PracticePO> getUnCompleteList(@Param("loginId") String loginId,
                                       @Param("limit") int limit,
                                       @Param("offset") int pageSize);


}